/***************************************************************************/
/* Procedimiento:  Capt_PermisoFondeoInsertar
/* Descripcion:   Insertar o Modifica una fila en la tabla ediv2.Capt_PermisoFondeo
/* Parametros:    ?InfoParametros
/*                pTransaccion. Numero identificador de la Transaccion
/*                pMensaje. Mensaje de comfirmacion o excepcion
/* Comentarios:         
/****************************************************************************/

PROCEDURE  Capt_PermisoFondeoInsertarModificar(pnidDocumento NUMBER, pnidAvisoArribo NUMBER, 
						pnombreBuque VARCHAR2, pbandera VARCHAR2, pcalado_Proa NUMBER, 
						pcalado_Popa NUMBER, pETA VARCHAR2, pETF VARCHAR2, 
						pcapitan VARCHAR2, ptipo_Buque VARCHAR2, ptipo_Carga VARCHAR2, 
						pcodigo_Pbip VARCHAR2, pcolor_Casco VARCHAR2, ppuerto_Procedencia VARCHAR2, 
						ppuerto_Destino VARCHAR2, pETD VARCHAR2, pjustificacion VARCHAR2, 
						pobservaciones VARCHAR2, pservicio VARCHAR2, ppago VARCHAR2, 
						ppuerto_Reg VARCHAR2, pcodigo_Llamada VARCHAR2, pnum_Oficial NUMBER, 
						pnum_OMI NUMBER, pcolocacion_Quilla NUMBER, ppuesto_Marcha NUMBER, 
						pTRB NUMBER, pTRN NUMBER, pconstructores VARCHAR2, 
						pclase VARCHAR2, pmotor VARCHAR2, ppropietarios VARCHAR2, 
						poperador VARCHAR2, ppuntal NUMBER, peslora_Total NUMBER, 
						peslora_Perpendiculares NUMBER, paltura NUMBER, pluz NUMBER, 
						pmanga NUMBER, ppeso_Muerto NUMBER, pcalado_Construccion NUMBER, 
						, pTransaccion OUT NUMBER, pMensaje OUT VARCHAR2)
AS
vExisteRegistro NUMBER(1);
BEGIN
  SELECT count(*)
  INTO   vExisteRegistro
  FROM   ediv2.Capt_PermisoFondeo
  WHERE  nidDocumento=pNidDocumento;
  
  IF vExisteRegistro=0 THEN
    INSERT INTO ediv2.Capt_PermisoFondeo
	           (nid, nidDocumento, nidAvisoArribo, 
						nombreBuque, bandera, calado_Proa, 
						calado_Popa, ETA, ETF, 
						capitan, tipo_Buque, tipo_Carga, 
						codigo_Pbip, color_Casco, puerto_Procedencia, 
						puerto_Destino, ETD, justificacion, 
						observaciones, servicio, pago, 
						puerto_Reg, codigo_Llamada, num_Oficial, 
						num_OMI, colocacion_Quilla, puesto_Marcha, 
						TRB, TRN, constructores, 
						clase, motor, propietarios, 
						operador, puntal, eslora_Total, 
						eslora_Perpendiculares, altura, luz, 
						manga, peso_Muerto, calado_Construccion, 
						)
    VALUES     (seq_Capt_PermisoFondeo.nextval, pnidDocumento, pnidAvisoArribo, 
						pnombreBuque, pbandera, pcalado_Proa, 
						pcalado_Popa, to_date(pETA,'DD/MM/YYYY HH24:MI:SS'), to_date(pETF,'DD/MM/YYYY HH24:MI:SS'), 
						pcapitan, ptipo_Buque, ptipo_Carga, 
						pcodigo_Pbip, pcolor_Casco, ppuerto_Procedencia, 
						ppuerto_Destino, to_date(pETD,'DD/MM/YYYY HH24:MI:SS'), pjustificacion, 
						pobservaciones, pservicio, ppago, 
						ppuerto_Reg, pcodigo_Llamada, pnum_Oficial, 
						pnum_OMI, pcolocacion_Quilla, ppuesto_Marcha, 
						pTRB, pTRN, pconstructores, 
						pclase, pmotor, ppropietarios, 
						poperador, ppuntal, peslora_Total, 
						peslora_Perpendiculares, paltura, pluz, 
						pmanga, ppeso_Muerto, pcalado_Construccion, 
						);
  ELSE
    UPDATE ediv2.Capt_PermisoFondeo
    SET    nidDocumento=pnidDocumento, nidAvisoArribo=pnidAvisoArribo, 
		nombreBuque=pnombreBuque, bandera=pbandera, calado_Proa=pcalado_Proa, 
		calado_Popa=pcalado_Popa, ETA=to_date(pETA,'DD/MM/YYYY HH24:MI:SS'), ETF=to_date(pETF,'DD/MM/YYYY HH24:MI:SS'), 
		capitan=pcapitan, tipo_Buque=ptipo_Buque, tipo_Carga=ptipo_Carga, 
		codigo_Pbip=pcodigo_Pbip, color_Casco=pcolor_Casco, puerto_Procedencia=ppuerto_Procedencia, 
		puerto_Destino=ppuerto_Destino, ETD=to_date(pETD,'DD/MM/YYYY HH24:MI:SS'), justificacion=pjustificacion, 
		observaciones=pobservaciones, servicio=pservicio, pago=ppago, 
		puerto_Reg=ppuerto_Reg, codigo_Llamada=pcodigo_Llamada, num_Oficial=pnum_Oficial, 
		num_OMI=pnum_OMI, colocacion_Quilla=pcolocacion_Quilla, puesto_Marcha=ppuesto_Marcha, 
		TRB=pTRB, TRN=pTRN, constructores=pconstructores, 
		clase=pclase, motor=pmotor, propietarios=ppropietarios, 
		operador=poperador, puntal=ppuntal, eslora_Total=peslora_Total, 
		eslora_Perpendiculares=peslora_Perpendiculares, altura=paltura, luz=pluz, 
		manga=pmanga, peso_Muerto=ppeso_Muerto, calado_Construccion=pcalado_Construccion
    WHERE  nidDocumento=pNidDocumento;
  END IF;
  
  COMMIT;
  pTransaccion := 1;
  pMensaje := 'Terminado OK';
  dbms_output.put_line('Terminado OK');

EXCEPTION
  WHEN OTHERS THEN
    pTransaccion := 0;
    pMensaje := 'Error en  Capt_PermisoFondeo_InsertarModificar:' || SQLCODE || ' Mensaje: ' || sqlerrm;
    dbms_output.put_line('Error en  Capt_PermisoFondeo_InsertarModificar:' || SQLCODE || ' Mensaje: ' || sqlerrm);
END;
